package controle;

import java.util.List;

import dao.DAOFactory;
import dao.GolDAO;
import modelo.Gol;
import modelo.Jogador;
import modelo.Jogo;

public class ControleGol {
	
	public void salvar(Gol gol) throws Exception{
		if(gol.getJogador()== null){
			throw new Exception("O jogador e obrigatorio!");
		}
		if(gol.getJogo()== null){
			throw new Exception("O jogo e obrigatorio!");
		}
		GolDAO golDao = DAOFactory.getGolDAO();
		if(gol.getId() == 0){
			golDao.salvar(gol);
		}else{
			golDao.alterar();
		}
	}
	public void excluir(Gol gol)throws Exception{
		if(gol == null){
			throw new Exception("É obrigatorio selecionar um gol para excluir!");
		}
		GolDAO golDao = DAOFactory.getGolDAO();
		golDao.excluir(gol);
	}
	
	public List<Gol> buscarPorJogo(Gol gol) throws Exception {
		if (gol.getJogo() == null) {
			throw new Exception(
					"É obrigatorio indicar um jogo para pesquisa!");
		}
		GolDAO golDao = DAOFactory.getGolDAO();
		return golDao.buscarPorJogo(gol.getJogo());
	}
	
	public long buscarPorJogadorEJogo(Jogador jogador, Jogo jogo ) throws Exception {
		if (jogo == null) {
			throw new Exception(
					"É obrigatorio indicar um jogo para pesquisa!");
		}
		if (jogador == null) {
			throw new Exception(
					"É obrigatorio indicar um jogador para pesquisa!");
		}
		GolDAO golDao = DAOFactory.getGolDAO();
		return golDao.buscarPorJogadorEJogo(jogador, jogo);
	}
	
	public List<Gol> buscarPorJogador(Gol gol) throws Exception {
		if (gol.getJogador() == null) {
			throw new Exception(
					"É obrigatorio indicar um jogador para pesquisa!");
		}
		GolDAO golDao = DAOFactory.getGolDAO();
		return golDao.buscarPorJogador(gol.getJogador());
	}

}
